מספר מילה. you very hungry am דוגמאות: decision trees ההודעה.

Similar documents
קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

ASP.Net MVC + Entity Framework Code First.

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

Practical Session No. 13 Amortized Analysis, Union/Find

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

המבנה הגאומטרי של מידה

מבוא לתכנות ב- JAVA תרגול 7

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

מבני נתונים תרגיל 4 פתרון

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

מושגים בסיסיים תלמידים והורים יקרים,


A R E Y O U R E A L L Y A W A K E?

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

תרגול 8. Hash Tables

מבוא למחשב בשפת פייתון

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

הגדרה: משפחת עצים תקרא מאוזנת אם (n.h(t) = O(log

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

הטכנולוגיה בחינוך ד ר קובי גל אוניברסיטת בן גוריון בנגב

יסודות מבני נתונים. תרגול :9 ערימה - Heap

מבנה ההרצאה חלק א' 1 (הסבר על הסימולטור.Torcs 2 (הסבר על תחרות EvoStar 2010 ביחד עם הדגמה של.GA חלק ב' הסבר על המאמר

Patents Basics. Yehuda Binder. (For copies contact:

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

Information The marks for questions are shown in brackets. The maximum mark for this paper is 50. You must not use a dictionary.

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "סטטיסטיקה והסתברות" בשאלון 802 שבאתר

Depth-First Search DFS

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

בוחן בתכנות בשפת C בצלחה

הקיטסיגול הרבחה יעדמל בלושמה גוחה

Genetic Tests for Partners of CF patients

THINKING ABOUT REST THE ORIGIN OF SHABBOS

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

Reflection Session: Sustainability and Me

סיבוכיות זמן ריצה רדוקציות ושלמות ב- NP המחלקה P הגדרה: = המחלקה NP הגדרה: שפה סגירות שפות הגדרה: רדוקציה

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

אנגלית (MODULE E) בהצלחה!

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

מבוא לאסמבלי מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר "ארגון המחשב ושפת סף" אשר נכתב ע"י ברק גונן לתוכנית גבהים של משרד החינוך.

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

Apple, keys, pen, pencils, pencilbox,(toy)elephant,( toy) boy, (toy) girl, ball

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

שאלון ו' הוראות לנבחן

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

Theories of Justice

תרגול 11 תור עץ חיפוש בינארי

interface Student {tag: Student, name: string; age: number;} const makestudent = ( name: string, age: number ) : Student =>

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

שאלון ד' הוראות לנבחן

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

תרגיל בית מספר - 1 להגשה עד 9 בנובמבר בשעה 23:55

ל"תוכנה" שכותבים, כמו פונקציה זו, קוראים "קוד"

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

שאלון ו' הוראות לנבחן

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

T H E S U N F L O W E R L I M I T S T O F O R G I V E N E S S

דיאגרמה לתיאור Classes

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

תרגול מס' 01 אלגוריתם דיניץ

פרצות אבטחה נפוצות בהעלאת קבצים בעזרת PHP

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

(MODULE E) ב ה צ ל ח ה!

למבחן ביסודות מדעי המחשב דוגמא

תוכנה 1 אביב תשע"ג תרגיל מספר 7 לכל אורך התרגיל ניתן להוסיף שירותי עזר בתנאי שאינם פוגעים בנדרש בסעיפים אחרים.

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

sharing food intro price & extra drinks * ניתן להזמין מנות כשרות בתאום מראש for good memories

תרגיל בית מספר - 5 להגשה עד 7 ביוני )יום ראשון( בשעה 32555

Summing up. Big Question: What next for me on my Israel Journey?

חטיבת המינרלים החיוניים תתמקד בשוקי האגרו וחטיבת הפתרונות המיוחדים תשמש כחטיבה התעשייתית; כיל דשנים מיוחדים תשולב בחטיבת המינרלים החיוניים;

תורשכ ירפס לכ ץבוק " ב י קלח יללכ רעש

אוניברסיטת בן גוריון בנגב

Structural Vs. Nominal Typing

במבוא מורחב למדעי המחשב בשפת פייתון

A Long Line for a Shorter Wait at the Supermarket

הצעת תשובות לשאלות בחינת הבגרות אנגלית

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק(

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

מדריך למשתמש התקנה עצמית

SPSS 10.0 FOR WINDOWS

תורת הקומפילציה

חזרה, מיונים פולינה לוצקר

Transcription:

מיני פרוייקט באנליזה של נתונים. 202.1.4511 ד"ר סיון סבתו sabatos@cs.bgu.ac.il שעות קבלה: יום ב 14 16, בתיאום מראש בלבד. בפרוייקט זה נממש אלגוריתם הלומד לסווג הודעות טקסט בפורומים באינטרנט לפורום המתאים להן. ניתן לבצע את הפרוייקט בזוגות או ביחידים. מי שרוצה להציע פרוייקט אחר או שינוי בפרוייקט המתואר מוזמן להתייעץ איתי. יש להגיש את הפרוייקט עד 15.7.15. אלגוריתם לומד האלגוריתם הלומד מקבל כקלט דוגמאות examples של הודעות, כאשר לכל הודעה מוצמד מזהה הפורום האמיתי שלה. למזהה זה קוראים גם תוית.label לקלט של האלגוריתם, שהוא קבוצת הודעות שלכל אחת מוצמדת התוית האמיתית שלה, קוראים מדגם אימון.training set האלגוריתם משתמש במדגם האימון כדי לבנות מודל חיזוי.predictor מודל חיזוי הוא פונקציה הממפה כל הודעה אפשרית לפורום המתאים לה לדעת האלגוריתם. המטרה היא שהמודל יהיה מוצלח, כלומר שבקבלת הודעה חדשה, המודל בדרך כלל יתן את הפורום המתאים ביותר להודעה. בדרך כלל אי אפשר להגיע ל 100% הצלחה, אך מקווים לאחוזי הצלחה כמה שיותר גבוהים. כדי למדוד את אחוזי ההצלחה של האלגוריתם, נשתמש במדגם בדיקה.test set מדגם זה מכיל הודעות שהתיוג שלהם ידוע לנו אך אינו ידוע לאלגוריתם. האלגוריתם יקבל כקלט נוסף את מדגם הבדיקה, ויציע סיווג לפורום לכל אחת מההודעות במדגם, על פי מודל החיזוי שבנה. אחוז ההצלחה של האלגוריתם הוא מספר ההודעות במדגם הבדיקה שעבורן הסיווג שהציע הוא אכן הסיווג האמיתי. האלגוריתם בוחר את המודל שנראה לו המתאים ביותר מתוך קבוצה של מודלים אפשריים (בפרוייקט זה נשתמש בקבוצת המודלים שנקראת עצי החלטה, המתוארים בהמשך). כדי להחליט איזה מודל הוא המתאים ביותר, האלגוריתם משתמש במדגם האימון: העקרון הבסיסי הוא שאם מדגם האימון הוא קבוצה מייצגת של הודעות (למשל, קבוצה שנבחרה רנדומלית מתוך הפורומים השונים), אז מודל שעובד טוב על מדגם האימון (כלומר חוזה נכון הרבה מהתויות של הודעות במדגם זה) יצליח לעבוד טוב גם על הודעות אחרות שמעולם לא ראה. חשוב להזהר עם עקרון זה, כיון שאם מודל החיזוי מתייחס באופן ספציפי מדי למדגם האימון, הוא עלול להיות גרוע מאד על הודעות חדשות למרות שהוא מצליח מאד על מדגם האימון. דוגמא: מודל חיזוי שלוקח את רשימת ההודעות ממדגם האימון ופשוט זוכר את הפורום המתאים לכל הודעה שראה, יצליח מאד על מדגם האימון אך ייכשל כמעט לחלוטית על הודעות חדשות שמעולם לא ראה. לתופעה זאת קוראים התאמת יתר.over-fitting אנחנו נטפל גם בבבעיה זו במימוש האלגוריתם. ייצוג מידע טקסטואלי עבור אלגוריתם למידה כדי להזין מידע בצורה נוחה לאלגוריתם ולמודל החיזוי, יש להמיר כל הודעת טקסט לייצוג נוח. ייצוג נוח הוא כזה שבו כל דוגמא מתוארת על ידי וקטור של ערכים מספריים. כל ערך כזה נקרא.feature ייצוג מקובל עבור טקסט, שבו אנחנו נשתמש, נקרא.bag of words ייצוג זה מתעלם מסדר המלים בטקסט ושומר רק את זהות המלים שהופיעו. הוא גם מתעלם ממספר הפעמים שכל מילה הופיעה בטקסט. בדרך כלל כדאי להחזיק מילון הממפה מלים למספרים. מילון זה צריך להכיל את כל המלים שנצפו במדגם האימון. באמצעות המילון, אפשר לתאר כל הודעה כוקטור של מספרים בינאריים.

I לדוגמא, אם המילון הוא: מספר מילה you very hungry am 1 2 3 4 5 אז ההודעה hungry" I, am very very תתואר על ידי הוקטור: (1,0,1,1,1). כיון שהמילון צפוי להיות מאד גדול, ולעומת זאת בכל הודעה יהיה מספר קטן מהמלים במילון, יש לשמור את הוקטורים המייצגים הודעות באופן כזה שאפסים לא יתפסו מקום ושיהיה קל למצוא את הקואורדינטות ששונות מאפס. הערה חשובה: מהי מילה? לצורך הפרוייקט מילה תהיה כל רצף של אותיות בלבד (גדולות או קטנות, אך לא כולל מספרים, רווחים או סימני פיסוק). מילה עם אותיות גדולות או קטנות תחשב לאותה מילה. דוגמאות: very Very, ייחשבו לאותה מילה. המילה don't תפורק לשתי מלים, don ו t לשם הפשטות, מלים המופיעות בתוך תגי HTML המופיעים בחלק מההודעות יחשבו גם כן כמלים. למשל <br> יתן את המלה.br קבוצת מודלי החיזוי: עצי החלטה decision trees האלגוריתם הלומד שלנו ילמד מודל חיזוי מסוג עץ החלטה. מודל חיזוי כזה הוא עץ בינארי, אשר בכל צומת פנימי שלו יש תנאי, ובכל אחד מהעלים שלו יש אחד מהערכים האפשריים לתויות. לכל צומת יש שני ילדים: אחד עבור המקרה שהתנאי מתקיים ואחד עבור המקרה שהתנאי אינו מתקיים. כדי לסווג הודעה חדשה על פי עץ החלטה נתון, מתחילים משורש העץ ובודקים את התנאי על ההודעה. לפי קיום או אי קיום התנאי, ממשיכים לילד המתאים. אם גם בצומת זה מופיע תנאי, בודקים גם אותו, וכן הלאה עד שמגיעים לעלה. כאשר מגיעים לעלה, מחזירים את התוית הכתובה בו. זו התחזית של המודל עבור ההודעה. אנו נשתמש בתנאים מהצורה "האם מילה X מופיעה בהודעה", כאשר X הוא אחת המלים במילון.

דוגמא: מודל חיזוי שממפה הודעות לאחד משלושה פורומים: אוכל, דייג, ושייט. fish cook yes no boat yes no yes no food fishing sailing hook yes fishing no food כיצד האלגוריתם בוחר עץ החלטה האלגוריתם ישתמש בדוגמאות האימון על מנת לבנות עץ החלטה באופן הבא: מתחילים מעץ שעשוי מעלה אחד. בעלה זה יופיע הפורום הנפוץ ביותר במדגם האימון. כעת, עובדים בסיבובים: בכל סיבוב מוחקים את אחד העלים בעץ, ומחליפים אותו בצומת שלו יש שני ילדים שהם עלים. הערך בכל עלה חדש תמיד יהיה הפורום הנפוץ ביותר במדגם האימון עבור הודאות שמתאימות לעלה זה. מספר הסיבובים (כלומר, מספר הצמתים הפנימיים שיהיו לעץ) ייקבע לפי פרמטר קלט T. כדי להחליט איזה עלה להחליף ומה לשים במקומו, נשתמש במדד שנקרא שיפור האינפורמציה.information gain מדד זה מודד את השינוי באנתרופיה entropy של העץ. אנתרופיה היא מספר המודד את מידת אי הוודאות בשיוך הודעה לפורום על פי העץ הנוכחי. לכל עלה בעץ, אפשר לחשב את האנתרופיה entropy של העלה על מדגם האימון כך: נסמן ב N(L) את מספר ההודעות במדגם האימון שמתאימות לעלה זה (כלומר מתאימות לתנאים במסלול שמוביל אל העלה). מתוך ההודעות האלו, נסמן ב Ni(L) את מספר ההודעות שהתוית עליהן היא i. האנתרופיה של העלה L על מדגם האימון היא: אם כל ההודעות בעלה שייכות לאותו פורום, נקבל,H(L)=0 כלומר אין כלל אי וודאות. לעומת זאת, אם ההודעות בעלה מחולקות שווה בשווה בין כל הפורומים, נקבל.H(L)=log(K) זה הערך המקסימלי של אי הודאות האפשרי. האנתרופיה הכוללת של העץ היא סכום משוקלל של האנתרופיה בכל העלים. מטרתנו בבנית העץ היא להקטין את האנתרופיה של הסיווג. לכן בכל סיבוב נגדיל את העץ באופן שיקטין את האנתרופיה הכוללת כמה שיותר, באמצעות החישוב הבא. נניח שמחליפים עלה L בתנאי "האם מילה X קיימת בטקסט". לצומת התנאי יווצרו שני עלים ילדים, עבור שתי התוצאות האפשריות של התנאי. נסמן את העלים האלו ב.La, Lb מתוך N הודעות במדגם האימון שמתאימות ל L, נסמן ב N(La) את ההודעות שמתאימות לעלה החדש וב N(Lb) את ההודעות שמתאימות לעלה החדש.Lb

. האנתרופיה המשוקללת של שני העלים החדשים ביחד היא היא תמיד תהיה קטנה יותר מ.H(L) שיפור האינפורמציה של תנאי X על עלה L הוא: בכל סיבוב האלגוריתם יבחר את X ואת L שעבורם N(L)*IG(X,L) הוא מקסימלי. שימו לב שאת השיפור מכפילים במספר הדוגמאות N שמתאימות לעלה L, כדי שהאלגוריתם יעדיף שיפור שמשפיע על דוגמאות רבות ולא כזה שמשפיע על מעטות. אחרי T סיבובים האלגוריתם עוצר כאשר בידיו עץ החלטה עם T צמתים פנימיים. כיצד לבחור את גודל העץ (ערך הפרמטר T) גודל העץ הוא פרמטר חשוב עבור האלגוריתם הלומד. גודל עץ קטן מדי, יוביל לכך שיהיה קשה לזהות לאיזה פורום הדוגמא שייכת, כיוון שלא נבדקו מספיק מלים שיכולות להשפיע על הבחירה. גודל עץ גדול מדי, יכול להוביל לכך שהעץ מאד מתאים להודעות שבמדגם האימון, אבל לא מתאים במיוחד להודעות חדשות. זאת בשל התופעה של התאמת יתר.over-fitting אנו נשתמש במדגם ולידציה validation set לבחירת הערך של T: קובעים ערכים אפשריים ל T. לצורך המימוש שלנו נבדוק רק ערכי T שהם חזקות של 2, מ 1 ועד 2 בחזקת P. הוא פרמטר קלט. כמו כן קובעים אחוז מדוגמאות הקלט שישמשו למדגם הולידציה, נסמנו L כאשר L, מתוך הקלט לאלגוריתם בוחרים באופן רנדומלי P% מההודעות עם התויות שלהן. הודעות אלו יהיו מדגם הולידציה, ולא יהיו חלק ממדגם האימון. שאר ההודעות שהתקבלו כקלט ישמשו כמדגם אימון. עבור כל אחד מהערכים האפשריים של T, מריצים את אלגוריתם בניית העץ על מדגם האימון עבור T. מחשבים את הצלחת האלגוריתם המשוערת על ידי הפעלת מודל החיזוי על הדוגמאות שבמדגם הולידציה, וחישוב אחוז ההודעות שעבורן מודל החיזוי של האלגוריתם מתאים לתוית האמיתית של הדוגמא. בסוף המעבר על כל הערכים של T, בוחרים את הערך של T שעבורו ההצלחה על מדגם הולידציה היתה הגבוהה ביותר. העץ שהאלגוריתם למד עבור ערך זה יהיה מודל החיזוי הנבחר. הצלחתו הסופית של אלגוריתם הלמידה תיבדק על מדגם הבדיקה. הבעיות שעליהן יופעל האלגוריתם הלומד האלגוריתם יופעל על שני data sets שונים, כל אחד מהם מכיל הודעות מפורומים מסוג אחר. הקבצים יסופקו באתר הקורס: http://www.cs.bgu.ac.il/~tai152 data set ראשון:.20newsgroups זהו data set קלאסי משנות התשעים, המכיל הודעות מפורומים של.USENET נשתמש באלגוריתם כדי להבחין בין 4 פורומים מתוך ה 20 המקוריים: alt.ahteism.1 comp.graphics.2 rec.motorcycles.3 sci.electronics.4 data set שני: פורומים בנושא אוטיזם. זהו data set חדש שלא נחקר הרבה. ננסה להשתמש באלגוריתם כדי להבחין בין 4 פורומים: 1. פורום להורים

2. פורום אוטיזם וחינוך 3. פורום תמיכה באוטיזם 4. פורום תזונה לכל אחד מה data sets תקבלו את הקבצים הבאים: 1. קבצים בשם,num.train כאשר num הוא מספר הפורום ממנו הגיעו ההודעות בקובץ. כל שורה בקובץ היא הודעה אחת מהפורום. 2. קובץ בשם.test.examples קובץ זה מכיל את ההודעות של מדגם הבדיקה, והוא יועבר כקלט לאלגוריתם, שיספק את התויות החזויות עבורו. כל שורה בקובץ היא הודעה אחת. 3. קובץ בשם.test.labels קובץ זה מכיל את התויות האמיתיות של ההודעות במדגם הבדיקה. כל שורה בקובץ היא תוית אחת, לפי אותו סדר של ההודעות בקובץ.test.examples קובץ זה ישמש על מנת לבדוק את הצלחת האלגוריתם, באמצעות השוואת התויות החזויות לתויות האמיתיות. כדי לבדוק את הצלחת האלגוריתם, אפשר להריץ את הפקודה הבאה בלינוקס, כאשר output הוא קובץ התחזיות של האלגוריתם עבור ההודעות בקובץ.test.examples ~> paste output test.labels uniq -c פקודה זו תייצר שורות מהצורה הבאה: <num> <output label> <true label> כאשר num הוא מספר הפעמים שהאלגוריתם חזה את output label ואילו התשובה הנכונה היא.true label כדי לחשב את אחוזי ההצלחה של האלגוריתם, יש לסכם את המספרים בשורות שבהן שתי התויות זהות. אפשר גם להשתמש בתצוגה זו כדי לייצר מטריצת בלבול :confusion matrix זוהי טבלה שבשורות שלה התויות האמיתיות ובעמודות שלה התויות שהאלגוריתם חזה, ובכל כניסה כותבים את אחוז הדוגמאות ממדגם הבדיקה שמתאימות לכניסה. הצלחה מושלמת היא כאשר רק הכניסות על האלכסון שונות מאפס. שימו לב שאלגוריתם שמחלק את התויות באופן רנדומלי יזכה לאחוז הצלחה של כ 25%. לכן נקווה לאחוזי הצלחה גבוהים יותר מכך. בונוס ניתן לקבל בונוס לציון הפרוייקט על ידי הצעת שיפור לאלגוריתם הלומד, כדי לנסות לשפר את התחזיות עבור ה data set השני, של הפורומים בנושא אוטיזם. יש לממש את ההצעה ולדווח על תוצאותיה (ראו שאלה 4 בדו"ח הפרוייקט).

הגשה יש להגיש את הקוד של האלגוריתם, ודו"ח פרוייקט. הגשת הקוד יש להגיש קובץ ZIP המכיל את כל הקבצים הדרושים להרצת האלגוריתם. על הקובץ להכיל סקריפט בשם,tree_learn המריץ את האלגוריתם. הסקריפט צריך לרוץ בהצלחה מ bash על מחשבי הלינוקס שבחדרי המחשבים. מותר לכתוב את האלגוריתם בשפות הבאות לפחות: ++C/C (במקרה כזה על הסקריפט גם לקמפל את הקוד),,JAVA פייתון,.perl, matlab מי שמעוניין בשפה אחרת נא לפנות אלי לאישור. שורת הפקודה תקבל את הפרמטרים הבאים, לפי הסדר הזה: 1. מסלול לספריה שמכילה את הקבצים עם דוגמאות האימון. האלגוריתם יצפה למצוא בספריה קבצים עם השמות: 1.train, 2.train, 3.train, 4.train כל אחד מהקבצים עשוי להופיע או לא להופיע, אך האלגוריתם יצפה לקבל לפחות 2 קבצים. אם קובץ אינו מופיע, מודל החיזוי של האלגוריתם לא יחזה את הפורום עם המספר הזה לעולם. 2. שם הקובץ המכיל את דוגמאות הבדיקה 3. האחוז P של דוגמאות הולידציה מתוך דוגמאות האימון. למשל, אם בקובץ אימון מסוים יש 50 דוגמאות, והערך P הוא 10, 10% = 5 דוגמאות מתוך קובץ זה ישמשו לולידציה. מכל קובץ אימון יילקח אחוז P לפי כמות הדוגמאות באותו קובץ. אם האחוז יוצר מספר דוגמאות שברי, אפשר לעגל לאחד הכיוונים. 4. פרמטר L, שהוא החזקה המקסימלית של 2 שיש לבדוק עבור גודל העץ T. 5. שם קובץ פלט. הקובץ יכיל את התוית שהאלגוריתם חוזה עבור כל אחת מדוגמאות הבדיקה. כל תוית תודפס בשורה נפרדת, כמספר בין 1 ל 4 ללא תוים נוספים. דוגמא לשורת פקודה: tree_learn traindir/ test.examples 25 7 output.txt יש לוודא ששורת הפקודה עובדת בהצלחה כאשר מריצים אותה מייד אחרי שמבצעים UNZIP לקובץ ההגשה, מאותו מיקום. בזמן ריצת האלגוריתם יש להדפיס למסך את אחוזי ההצלחה שהתקבלו עבור כל אחד מגדלי העץ T שנבדקו. יש להדפיס את אחוזי ההצלחה על מדגם האימון ועל מדגם הולידציה. בנוסף יש להדפיס איזה גודל T נבחר לבסוף. הפורמט להדפסות אלו יכול להיות לפי רצונכם כל עוד הוא קל להבנה. שימו לב שתצטרכו להשתמש בנתונים אלו גם על מנת לענות על שאלות בדו"ח הפרוייקט. שימו לב שבזמן בדיקת האלגוריתם ומתן ציון, יהיה שימוש בהודעות אחרות מהפורומים, שלא נמצאות בקבצי האימון והבדיקה שקיבלתם. למי שמימש שיפור לאלגוריתם (שאלת הבונוס): יש לצרף בקובץ הזיפ סקריפט נוסף בשם.tree_learn_bonus כדאי שהסקריפט הנוסף יקבל אותה שורת פקודה כמו האלגוריתם המקורי. אם זה לא אפשרי (למשל יש צורך בקלטים נוספים), יש להוסיף בדו"ח הפרוייקט הסבר מדוייק כיצד להריץ אותו.

דוח הפרוייקט בדו"ח הפרוייקט ענו על השאלות הבאות. 1. בחרו החלטה אחת שהייתם צריכים לקבל בעת תכנון המימוש של האלגוריתם. למשל, בחירת מבנה נתונים או תכנון חלק מהאלגוריתם. מה היה האתגר או הבעיה שהייתם צריכים לפתור? כיצד בחרתם לפתור אותה ומדוע? עבור ה set data הראשון,,newsgroups הריצו את הקוד שלכם על קבצי האימון שקיבלתם, שבהם 750 דוגמאות לכל פורום, עם מדגם ולידציה בגודל 20% ופרמטר 7=L. a) הציגו בגרף את ההצלחה של האלגוריתם על מדגם האימון ועל מדגם הולידציה כפונקציה של הערך של גודל העץ T. b) איזה גודל עץ נבחר על ידי האלגוריתם? מהם אחוזי ההצלחה של העץ הזה על מדגם הבדיקה? האם הם דומים יותר לאלו של מדגם האימון או לאלו של מדגם הולידציה? c) האם יש שוני בהצלחה על מדגם האימון ועל מדגם הולידציה? מה השוני? הסבירו ממה לדעתכם השוני נובע. d) הדפיסו את 10 המלים הראשונות שנוספו לעץ שנבחר על ידי האלגוריתם. האם לדעתכם כל המלים הגיוניות להבדלה בין הפורומים שהאלגוריתם צריך להבחין ביניהם?אם יש מילה לא הגיונית, נסו לשער מדוע היא בכל זאת נבחרה על ידי האלגוריתם. e) כתבו את מטריצת הבלבול של האלגוריתם על 4 הפורומים. האם יש פורומים שהאלגוריתם מבחין ביניהם יותר בקלות, ואחרים שפחות? נסו להסביר מדוע דוקא אלו ולא אחרים. עבור ה set data השני, פורומים על אוטיזם, הריצו את הקוד שלכם 5 פעמים, בכל פעם עם קבצי אימון עם מספר דוגמאות אחר לכל פורום. מספרי הדוגמאות שיש לספק לאלגוריתם מכל פורום הם:.2000,500,100,20,5 הגדירו מדגם ולידציה בגודל 20% ופרמטר 7=L. כדי ליצר קבצי דוגמאות אימון עם המספר הדרוש של דוגמאות, השתמשו בקבצי האימון שקיבלתם וקחו מהם את השורות הראשונות במספר הדרוש. למשל, כדי לקבל קובץ אימון בגודל 20 הודעות עבור הפורום הראשון, אפשר להריץ את הפקודה הבאה ב :shell.2.3 ~> head -20 1.train > 20examples/1.train הציגו בגרף את ההצלחה של האלגוריתם על מדגם הבדיקה כפונקציה של מספר דוגמאות האימון. מה המגמה שאתם רואים? הסבירו מדוע. הדפיסו את 10 המלים הראשונות שנוספו לעץ שנבחר על ידי האלגוריתם באחת ההרצות (כתבו איזו הרצה בחרתם). האם לדעתכם כל המלים הגיוניות להבדלה בין הפורומים שהאלגוריתם צריך להבחין ביניהם? אם יש מילה לא הגיונית, נסו לשער מדוע היא בכל זאת נבחרה על ידי האלגוריתם. כתבו את מטריצת הבלבול של האלגוריתם על 4 הפורומים באחת ההרצות (כתבו איזו הרצה בחרתם). האם יש פורומים שהאלגוריתם מבחין ביניהם יותר בקלות, ואחרים שפחות? נסו להסביר מדוע דוקא אלו ולא אחרים. (a (b (c בונוס (למי שניסה לשפר את ההצלחה של האלגוריתם על הפורומים של אוטיזם) a) איזה שינוי עשיתם באלגוריתם על מנת לנסות לשפר את הצלחתו? b) מדוע חשבתם ששינוי זה יעזור לאחוזי ההצלחה? c) הציגו תוצאות הרצה של האלגוריתם על ה set data השני לאחר השינוי, עם אותם פרמטרים כמו בשאלה 3. האם הצלחתם לשפר? אם לא הצלחתם, נסו להסביר מדוע..4

ציון הציון מחולק ל 50 נק' עבור המימוש ו 65 נק' עבור דו"ח הפרוייקט, כולל 15 נקודות עבור שאלת הבונוס. חלוקת הנקודות עבור הדו ח: 10 נק לשאלה 5 1, נק' לכל סעיף בשאלות 2,3,4. (סה"כ 65). על מנת לעבור את הקורס יש לקבל ציון עובר גם עבור הקוד וגם עבור הדו"ח.